package com.douyin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.douyin.entity.UserBehavior;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

public interface UserBehaviorMapper extends BaseMapper<UserBehavior> {

    /**
     * 查询用户指定时间范围内的行为
     * @param userId 用户ID
     * @param startTime 开始时间
     * @return 行为列表
     */
    List<UserBehavior> selectRecentBehaviors(
            @Param("userId") Long userId,
            @Param("startTime") LocalDateTime startTime);

    /**
     * 查询对指定视频有特定行为的用户
     * @param videoIds 视频ID列表
     * @param behaviorTypes 行为类型列表
     * @return 用户ID列表
     */
    List<Long> selectUsersByVideosAndBehaviors(
            @Param("videoIds") List<Long> videoIds,
            @Param("behaviorTypes") List<Integer> behaviorTypes);

    /**
     * 查询指定用户对特定行为的视频
     * @param userIds 用户ID列表
     * @param behaviorTypes 行为类型列表
     * @param limit 数量限制
     * @return 视频ID列表
     */
    List<Long> selectVideosByUsersAndBehaviors(
            @Param("userIds") List<Long> userIds,
            @Param("behaviorTypes") List<Integer> behaviorTypes,
            @Param("limit") Integer limit);
}